# -*- coding: utf-8 -*-
"""
@Time ： 2024/9/26 10:17
@Auth ： 周瑞东 Ryan.Zhou
@File ：ui_loader.py
"""
from PyQt5.QtWidgets import QFrame, QVBoxLayout


class UILoader:
    def __init__(self, stacked_widget):
        # 存储 QFrame 的字典
        self.frames = {}

        self.stacked_widget = stacked_widget

    def load_ui(self, pages, mode_margin_spacing):
        # 挂载各个子模块的界面
        for page in pages:
            frame = QFrame()  # 创建新的 QFrame
            layout = QVBoxLayout(frame)  # 创建布局

            layout.addWidget(pages[page].ui)  # 将 UI 添加到布局中
            frame.setLayout(layout)  # 设置布局到 QFrame

            self.stacked_widget.addWidget(frame)  # 将 QFrame 添加到 stacked_widget
            # self.stacked_widget.set

            # 存储 QFrame 到字典，使用 page 作为键
            self.frames[page] = frame

            if mode_margin_spacing == 0:
                # 设置间距（可选）
                layout.setContentsMargins(0, 0, 0, 0)  # 左、上、右、下的间距
                layout.setSpacing(10)  # 控件之间的间距
            else:
                # 设置间距（可选）
                layout.setContentsMargins(20, 30, 20, 20)  # 左、上、右、下的间距
                layout.setSpacing(20)  # 控件之间的间距

    def get_frame(self, module_name):
        # 通过模块名称获取之前创建的 QFrame
        return self.frames.get(module_name)

        # 设置布局使 frame 填充 page_with_frame
        # layout = QVBoxLayout(self.frame_65)
        # layout.addWidget(self.page_settings_e1682)
        # if not self.__global_state.network.is_connected:
        #     self.__t_ping = ThreadPing(self.__global_state.network.ip_des)
        #     self.__t_ping.sigs.ping_result.connect(self.page_settings_e1682.on_sig_ping_result)
        #     self.threadpool.start(self.__t_ping)